#ifndef __MARS_GP_CL_CONTEXT_H__
#define __MARS_GP_CL_CONTEXT_H__

#include "MarsGPContext.h"

namespace GP
{

class CLContext : public Context
{
public:
									CLContext( const DevicePtr& device );
	virtual							~CLContext();

	cl_context						GetNativeContext() const;

protected:
	virtual bool					Create();

private:
	cl_context						m_context;
};

inline CLContext::CLContext( const DevicePtr& device )
	: Context( device )
{
	Create();
}

inline CLContext::~CLContext()
{

}

inline cl_context CLContext::GetNativeContext() const
{
	return m_context;
}

} // end of namespace GP

#endif // end of #ifndef __MARS_GP_CL_CONTEXT_H__